1. Field
Embodiments of the invention relate to the field of processing devices and more specifically, but not exclusively, to providing hardware independence to automate generation of processing device firmware.
2. Background Information
Processing devices, such as microcontrollers, are widely used in the industry as control elements in many solutions. Most microcontrollers are general in purpose, and are designed for use in a wide variety of problem solutions. As microcontrollers become more programmable and more widely applicable, a designer needs more specific device knowledge to use the microcontroller to solve a problem.
In a conventional solution, hardware and software are usually created for a specific microcontroller, and may be redesigned (sometimes completely) following a change in requirements. A common sequence of events is to first determine the system requirements (often incompletely when time is short) to address a problem, then second to determine hardware and software requirements, then third to determine microcontroller and interfacing circuitry requirements, and fourth to find a suitable microcontroller and design suitable interfaces. Finally, the user must manually configure the microcontroller and write device specific firmware, and the user may have to re-write firmware, redesign circuitry, or choose another microcontroller based upon new/changing requirements.
Design changes during this conventional approach may result in costly and inefficient code changes, may cause software and hardware architecture changes and may even require a change in microcontroller and a significant redesign. Such a redesign may be costly and may delay design and production schedules. Also, designing and redesigning conventional microcontrollers may require specialists in a variety of areas including hardware engineering, firmware coding, and system design.